Hamming distance between 2 integers¶
Time: O(1); Space: O(1); easy
The Hamming distance between two integers is the number of positions at which the corresponding bits are different.
Example 1:
Input: x = 1, y = 4
Output: 2
Explanation:
1 (0 0 0 1)
4 (0 1 0 0)
. ^ ^
The above arrows point to positions where the corresponding bits are different.
Constraints:
0 < x, y < 231
[1]:
class Solution1(object):
def hammingDistance(self, x, y) -> int:
"""
:type x: int
:type y: int
:rtype: int
"""
distance = 0
z = x ^ y
while z:
distance += 1
z &= z - 1
return distance
[2]:
s = Solution1()
assert s.hammingDistance(1, 4) == 2
[3]:
class Solution2(object):
def hammingDistance(self, x, y) -> int:
"""
:type x: int
:type y: int
:rtype: int
"""
return bin(x ^ y).count('1')
[4]:
s = Solution2()
assert s.hammingDistance(1, 4) == 2